import antfu from '@antfu/eslint-config'

// https://github.com/antfu/eslint-config
export default antfu(
  {
    vue: {
      overrides: {
        'vue/block-order': ['warn', {
          order: [['script', 'template'], 'style'],
        }], // 将强制顺序改为警告
        'vue/define-macros-order': ['warn', {
          order: ['defineOptions', 'defineModel', 'defineProps', 'defineEmits', 'defineSlots'],
          defineExposeLast: true,
        }], // 将宏顺序的强制执行改为警告
        'vue/singleline-html-element-content-newline': 'off', // 关闭单行元素内容换行规则
        'vue/html-self-closing': ['warn', {
          html: {
            void: 'never',
            normal: 'always',
            component: 'never',
          },
        }], // 允许自闭合标签
        'vue/custom-event-name-casing': ['warn', 'kebab-case'], // 将自定义事件的大小写规则改为警告
      },
    },
    typescript: true,
    ignores: [
      '**/*.md',
      '.github',
      '.image',
      'src/types/shims-vue.d.ts',
    ],
  },
  {
    rules: {
      'curly': ['warn', 'all'], // 将大括号规则改为警告
      'no-new': 'warn', // 将 `new` 运算符规则改为警告
      'no-console': 'warn', // 允许使用 console，但给出警告
      'no-unused-vars': 'warn', // 允许未使用的变量，给出警告
      'no-empty': 'warn', // 允许空的代码块，给出警告
      'style/arrow-parens': ['warn', 'always'], // 箭头函数参数加括号，改为警告
      'style/brace-style': ['warn', '1tbs', { allowSingleLine: true }], // 大括号风格改为警告
      'regexp/no-unused-capturing-group': 'off', // 关闭未使用的捕获组检查
      'regexp/no-super-linear-backtracking': 'off', // 关闭正则表达式的复杂回溯警告
      'node/prefer-global/process': 'off', // 允许使用 `process` 作为局部变量
      'antfu/top-level-function': 'off', // 关闭强制函数定义规则
      'antfu/if-newline': 'off', // 关闭 `if` 语句后强制换行规则
    },
  },
)
